1. Field of the Invention
The invention relates to computers and computer software. More particularly, the invention relates to a method and apparatus for allocating use of an access device between a host operating system and a guest operating system.
2. Background of the Related Art
Every computer system is managed and implemented by its operating system. The operating system is responsible for a variety of functions including providing a user interface, coordinating use of memory, coordinating the use of devices coupled to the computer system, and managing the operating of various application programs.
However, there are situations where different computer systems need to share a common hardware or device. For example, different computer systems may need to share a common disk drive or a common printer. To implement the use of a common device or access device, some form of sharing mechanism or resource allocation is required among the computer systems.
In such a shared configuration, the use of the access device is managed by a host operating system within a particular computer system known as the host computer system. To enable the use the access device, the host operating system communicates with the operating systems of other computer systems known as guest computer systems. The operating system of these guest computer systems is known as a guest operating system.
One solution to implement sharing of the access device is to modify the host operating system. However, the host operating system generally comprises large, complex code that is difficult to change. Moreover, the modification of the host operating system would prevent a true sharing of a particular access device by a guest computer system operated by a guest operating system. Current implementations of the host and guest operating systems are monolithic with no support for the heterogeneous use of access devices. A problem occurs when the guest operating system may require access to a particular feature of the access device or hardware that is not supported by the host operating system.
Therefore, a need exists in the art to provide a solution that enables a guest computer system to use capabilities of an access device that is not necessarily supported by a host operating system.